package main

import "fmt"

var c = make(chan int)

func main() {

	go func() {
		for i := 0; i < 5; i++ {
			c <- i
		}
		close(c)
	}()

	/*for {
		v, ok := <-c
		if ok {
			fmt.Printf("v: %v\n", v)
		} else {
			break
		}
	}*/

	for v := range c {
		fmt.Printf("v: %v\n", v)
	}

	//注意：如果通道关闭，读多写少，没有了就是默认值，例如，int 就是0，如果没有关闭就会死锁。
	//for i := 0; i < 4; i++ {
	//	r := <-c
	//	fmt.Printf("r: %v\n", r)
	//}
	fmt.Println("end..")
}
